			UnixLib 37.a
			~~~~~~~~~~~~

There have been significant changes in UnixLib 3.7a, mostly for support of
GCC 2.7.2 and GNAT, and most of these have been done by Nick Burrett and
Peter Burwood.

Due to the size of the changes, this version should be considered a late
beta-test version, rather than a full release. It is likely that there are
problems, and that there will be a further release.

The biggest change in UnixLib is the ability for programs running under
RiscOS 3.5 or later to place the heap into a dynamic area. This has two
benefits - Dynamic areas are not re-mapped on a program switch, so the
process switch is faster, and dynamic areas can be made virtual with
virtualise, which increases the maximimum size of program.

Dynamic areas are controlled in two ways:

1) The program can disable dynamic areas by defining the variable
__dynamic_no_da. I.e. in one of the source files, put something like:

int __dynamic_no_da;

The precise type of the variable is irrelevant - it only needs to exist.

2) A user can enable dynamic areas by defining an environmental variable of
the form <prog_name>_heap, where <prog_name> is the leaf name of the program
being executed. I.e for GCC 2.7.2, the user would type the following at the
command line

*set gcc_heap ""

As with disabling dynamic areas, the value is irrelevant, the variable jusr
needs to be defined.

Note that this may change - I think it should be gcc$heap, etc, but I have
not told Nick yet.


			Changes in UnixLib 3.7a
			~~~~~~~~~~~~~~~~~~~~~~~

As a rough summary, the following area have been changed:

* Signal handling

This has been tidies up and rationalised slightly

* Memory

malloc(), etc have been replaced by a much improved group of functions, that
should have better characteristics, and less chance of loosing memory.

* Source control

All sources have been placed under RCS, so it should be harder to loose
sources, and easier to keep track of who did what.

* General tidy up

All source code has been changed to pure ANSI format, with all K&R style
functions changed appropriately.

All extern declarations in the source code have been deleted and replaced by
appropriate header files.

Any code that was permamently #ifdef'ed out has been removed.

Several compiler warnings have been disabled by appropriate casts.

* resource

This is entirely new, and mostly consists of stub functions that implement
unix style resource control.

* stdio

A minor problem with close() reporting an erroneous error has been cleared.

print() has been fiddled with, in an attempt to improve the printing of
floating point numbers. It might help.

* sys

This has been the most changed area, mainly to add the ability to use dynamic
areas under RiscOS 3.5+

* time

Again new, and provides functionality to control time and date, etc.

* unix

getcwd() has been improved for use with !Virtual
General tidy up.


			Rebuilding UnixLib
			~~~~~~~~~~~~~~~~~~

If you wish to rebuild UnixLib, you will need the Norcroft C compiler V4 or
later, objasm, make, etc.

Before starting to rebuild, the file !startup should be executed to set a
required environmental variable.

The makefile is in the Obj directory, and all objects, and the library will
be built in this directory. The resulting library can be copied to the clib.o
directory by the 'install' target.

Any modified sources or header files should be placed in the appropriate
subdirectory under the dev directory.
